﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Infra.Common.DAO
{
    public class OperadorDAL
    {
        public static void Salvar(Infra.Entity.tbOperador operador)
        {
            Infra.Entity.DBInfraEntityDataContext dc = new Entity.DBInfraEntityDataContext();
            if (operador.operCodigo != 0)
            {
                //Alterar o operador
                var oper = dc.tbOperadors.Single(op => op.operCodigo == operador.operCodigo);
                oper.operNome = operador.operNome;
                oper.operLogin = operador.operLogin;
                oper.operSenha = operador.operSenha;
                dc.SubmitChanges();
            }
            else
            {
                //Salvar o operador
                dc.tbOperadors.InsertOnSubmit(operador);
                dc.SubmitChanges();
            }
        }

        public static void Excluir(int idOperador)
        {
            Infra.Entity.DBInfraEntityDataContext dc = new Entity.DBInfraEntityDataContext();
            var operador = dc.tbOperadors.Single(op => op.operCodigo == idOperador);
            dc.tbOperadors.DeleteOnSubmit(operador);
            dc.SubmitChanges();
        }

        public static List<Infra.Entity.tbOperador> Pesquisar(int codigo, String nome, String login, String senha)
        {
            Infra.Entity.DBInfraEntityDataContext dc = new Entity.DBInfraEntityDataContext();
            var op = from operador in dc.tbOperadors
                     where ((codigo.Equals(0) || codigo.Equals(operador.operCodigo) &&
                           (nome.Equals(string.Empty) || nome.Equals(operador.operNome.Contains(nome)))))
                     select operador;
            List<Infra.Entity.tbOperador> operadores = op.ToList();
            return operadores;
        }

        public static List<Infra.Entity.tbOperador> PesquisarSP(int codigo, String nome, String login, String senha)
        {
            // Pesquisa usando Stored procedure
            //Infra.Entity.DBInfraEntityDataContext dc = new Entity.DBInfraEntityDataContext();
            //var op = dc.SP_PESQUISA_TIPOPRODUTO(codigo, nome);
            //List<Infra.Entity.tbOperador> operadores = op.ToList();
            return null;
        }
    }
}
